package com.ruoyi.home.service;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;

/**
 * 小程序代码生成服务接口
 * 
 * @author ruoyi
 * @date 2025-01-21
 */
public interface MiniprogramGeneratorService 
{
    /**
     * 生成小程序代码
     * 
     * @param pageData 页面设计数据
     * @return 生成的代码文件Map (文件名 -> 代码内容)
     */
    Map<String, String> generateMiniProgramCode(Map<String, Object> pageData);

    /**
     * 下载小程序代码包
     * 
     * @param pageData 页面设计数据
     * @param response HTTP响应
     * @throws IOException IO异常
     */
    void downloadMiniProgramCode(Map<String, Object> pageData, HttpServletResponse response) throws IOException;

    /**
     * 保存设计草稿
     * 
     * @param draftData 草稿数据
     * @return 草稿ID
     */
    Long saveDraft(Map<String, Object> draftData);

    /**
     * 获取草稿列表
     * 
     * @param pageNum 页码
     * @param pageSize 页大小
     * @return 草稿列表
     */
    Map<String, Object> getDraftList(Integer pageNum, Integer pageSize);

    /**
     * 获取指定草稿
     * 
     * @param draftId 草稿ID
     * @return 草稿内容
     */
    Map<String, Object> getDraft(Long draftId);

    /**
     * 删除草稿
     * 
     * @param draftId 草稿ID
     */
    void deleteDraft(Long draftId);

    /**
     * 获取组件数据
     * 
     * @param type 组件类型
     * @param campusId 校区ID
     * @return 组件数据
     */
    Object getComponentData(String type, Long campusId);
} 